const express = require('express');
const router = express.Router();

// 模拟数据库存储用户信息
// 实际应用中应该使用真实数据库
const userDB = new Map();

router.post('/login', async (req, res) => {
  console.log('收到登录请求，请求体：', req.body);

  try {
    const { code, userInfo } = req.body;

    if (!code) {
      return res.status(400).json({
        success: false,
        message: '缺少登录码'
      });
    }

    // 模拟检查用户是否已注册
    const existingUser = userDB.get(code);
    
    if (existingUser) {
      // 已注册用户直接返回信息
      return res.json({
        success: true,
        data: {
          isNewUser: false,
          userInfo: existingUser
        }
      });
    } else {
      // 新用户，需要选择身份
      return res.json({
        success: true,
        data: {
          isNewUser: true,
          tempCode: code // 临时保存code
        }
      });
    }

  } catch (error) {
    console.error('登录处理错误：', error);
    res.status(500).json({
      success: false,
      message: '服务器内部错误'
    });
  }
});

// 设置用户角色
router.post('/setRole', (req, res) => {
  const { code, role, userInfo } = req.body;

  if (!code || !role) {
    return res.status(400).json({
      success: false,
      message: '缺少必要参数'
    });
  }

  // 保存用户信息
  const userData = {
    ...userInfo,
    role,
    registrationDate: new Date().toISOString()
  };

  userDB.set(code, userData);

  res.json({
    success: true,
    data: userData
  });
});

module.exports = router;